# gazelle:ignore
load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
load("@io_bazel_rules_docker//go:image.bzl", "go_image")
load("@io_bazel_rules_docker//container:container.bzl", "container_bundle")
load("@io_bazel_rules_docker//contrib:push-all.bzl", "docker_push")

IMPORT_PATH = "github.com/prysmaticlabs/prysm/tools/faucet"

SRCS = [
    "main.go",
    "server.go",
]

DEPS = [
    "//proto/faucet:faucet_go_proto",
    "//shared/timeutils:go_default_library",
    "//shared/maxprocs:go_default_library",
    "@org_golang_google_grpc//:go_default_library",
    "@org_golang_google_grpc//peer:go_default_library",
    "@org_golang_google_grpc//metadata:go_default_library",
    "@org_golang_google_grpc//reflection:go_default_library",
    "@com_github_prestonvanloon_go_recaptcha//:go_default_library",
    "@com_github_ethereum_go_ethereum//ethclient:go_default_library",
    "@com_github_ethereum_go_ethereum//common:go_default_library",
    "@com_github_ethereum_go_ethereum//params:go_default_library",
    "@com_github_ethereum_go_ethereum//crypto:go_default_library",
    "@com_github_ethereum_go_ethereum//core/types:go_default_library",
]

go_library(
    name = "go_default_library",
    srcs = SRCS,
    importpath = IMPORT_PATH,
    visibility = ["//visibility:private"],
    deps = DEPS,
)

go_binary(
    name = "faucet",
    embed = [":go_default_library"],
    visibility = ["//visibility:public"],
)

go_image(
    name = "image",
    base = "//tools:go_image",
    binary = ":faucet",
    tags = ["manual"],
)

container_bundle(
    name = "image_bundle",
    images = {
        "gcr.io/prysmaticlabs/prysm/faucet:latest": ":image",
        "gcr.io/prysmaticlabs/prysm/faucet:{DOCKER_TAG}": ":image",
    },
    tags = ["manual"],
)

docker_push(
    name = "push_images",
    bundle = ":image_bundle",
    tags = ["manual"],
)
